iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 6
0
自我挑戰組

邁向 JavaScript 核心之路 系列 第 6

[Day 6] JavaScript 語法特性 - 範圍鏈 ( Scope chain )

  • 分享至 

  • xImage
  •  

每個變數都有自己的作用範圍,若使用前未宣告,就會變成全域變數,若是在函式內宣告的變數,則只能在該區域內使用,也就是說 JavaScript 在查找變數時,會循著範圍鏈一層層往外尋找,所以在了解閉包是如何運作之前,必須先對範圍鏈,也就是變數的作用範圍要有一定的認識,以下就讓我們用程式碼來說明吧!

    // 會優先查找函式範圍內,若函式範圍內無該變數,則會往外部或全域範圍找尋。
    var a = 1;
    (function() {
        console.log(a);  // 1
    })();
    
    // 驗證優先查找函式範圍內。
    
    var a = 1;
    (function() {
        var a = 100;
        console.log(a);  // 100
    })();
    
    
    // 查找函式範圍內·並無該變數,所以使用全域變數
    
    var a = 1;
    (function() {
        a = 100;
        console.log(a);  // 100
    })();
    console.log(a); // 100
    
    
    // 將全域變數當作參數傳入函式內,該參數視同區域變數。
    
    var a = 1;
    (function(a) {
        a = 100;
        console.log(a);  // 100
    })(a);
    console.log(a); // 1
    

終於要進入到閉包的章節了,希望下一篇文章能寫得淺顯易懂,讓各位客倌能輕鬆理解閉包並且應用!
各位客倌,我們明天見!


上一篇
[Day 5] JavaScript 語法介紹 - 立即函式 ( IIFE )
下一篇
[Day 7] JavaScript 語法特性 - 閉包 ( Closure )
系列文
邁向 JavaScript 核心之路 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言